/**
 * 导入 Vue 的 ref 函数，用于创建响应式数据。
 */
import { ref } from 'vue';
/**
 * 导入 Pinia 的 defineStore 函数，用于定义状态仓库。
 */
import { defineStore } from 'pinia';

/**
 * 定义倒计时时间的状态仓库。
 * 该仓库用于管理和操作倒计时的目标时间戳。
 */
export const useCountdownTimeStore = defineStore('countdown', () => {
  /**
   * 目标时间戳的响应式数据。
   * 从 localStorage 中获取目标时间戳，如果不存在则默认为 0。
   */
  const targetTimestamp = ref(localStorage.getItem('targetTimestamp') ? Number(localStorage.getItem('targetTimestamp')) : 0);

  /**
   * 获取目标时间戳。
   * @returns 当前的目标时间戳。
   */
  const getTargetTimestamp = () => {
    return targetTimestamp.value;
  };

  /**
   * 设置目标时间戳。
   * 将新的时间戳保存到响应式数据和 localStorage 中。
   * @param newTimestamp - 新的目标时间戳。
   */
  const setTargetTimestamp = (newTimestamp: number) => {
    targetTimestamp.value = newTimestamp;
    localStorage.setItem('targetTimestamp', new Date(newTimestamp).getTime().toString());
  };

  return {
    targetTimestamp,
    getTargetTimestamp,
    setTargetTimestamp
  };
});